Resume of Zachary Hilbun
Dallas, Texas
214/350-4207 zacharyh@vianova.com
Contract programmer that is expert at getting quick results in software for both embedded microprocessors/computers and Linux and Windows applications. Strong in design and documentation. Experience in 3D graphics and web applications.
REAL TIME EMBEDDED SOFTWARE AND HARDWARE: TI, NXP/Freescale and Broadcom ARM, Arduino, Motorola Coldfire 5272, 68000, Z80, bit-slice processors, firmware, SCSI. controllers, communications controllers, Chipcon RF, timers, clocks, DMA controllers, cryptography, a variety of peripheral chips and real-time multitasking operating systems. Designed system and board level architectures. Emulators, logic analyzers, NetBurner development kit.
OPERATING SYSTEMS DEVICE DRIVERS: Kernel and non kernel level Linux device drivers, board bringup. Created device drivers, debug packages, and shell interface. Generated and modified operating systems such as VRTX. Designed and implemented disk controller and file system. SCSI interface to disk and tape drives. Windows device drivers using Visual C++.
COMMUNICATIONS: Internet TCP socket programming, client and server socket applications. SNMP, SMTP, .NET Remoting, CIGI, POP3 e-mail, HDLC, asynchronous communications.
OPERATING SYSTEMS: Windows, Linux, TI SYS/BIOS, Windows Server, UNIX, uC/OS, VRTX real-time multitasking operating system, MS-DOS.
LANGUAGES / DEVELOPMENT ENVIRONMENT: C#, C++, C, Java, ASP (Active Server Page) in C#. Microsoft Visual C++ (VC++), Basic, 68000 assembly language, HTML Web pages, Visual Studio, Code Composer Studio (CCS), Eclipse.
DATABASES and DATABASE API’s: SQL Server, PostgreSQL, Access, ADO.Net, SQLite.
API's, Libraries, Frameworks, Environments: Linux, .Net, Qt, JSON, Qpid, Microsoft Windows, Win32, Microsoft Foundation Class (MFC), Microsoft Office automation.
GRAPHICAL USER INTERFACE, 3D GRAPHICS: OpenSceneGraph (Open Scene Graph, OSG), Qt, Microsoft Windows, OpenGL (Open GL), Direct3D (Directx 3D), Open Inventor, Ogre, and Irrlich 3D graphics package. Wrote firmware and microcode for graphics display processors.
PROJECT MANAGEMENT: Managed product life cycle including initial product specification, design, creation of software standards, scheduling of tasks, implementation, testing, customer acceptance, training, and support.
APPLICATIONS: Subversion (SVN), Bugzilla, Blender 3D Modeling Application, Doc-To-Help (manual and help file generator), InstallSHIELD (Installation program), Microsoft Project for Windows, Word For Windows, AutoCAD.
Wrote embedded Linux code for a robot (android) using Java and C++. Wrote bare metal code for NXP/Freescale MK series ARM motor controller using C in Processor Expert/Eclipse environment. Prototyped code in C++ on an Arduino. Assignments involved factory test, board bringup, Qpid messaging, Linux and embedded SPI driver, JSON parsing, Linux threads and mmap to /dev/mem.
Wrote embedded Android user interface for a medical device utilizing several screens and SQL (SQLite) database, custom Views and background threads. Developed under Android Studio. Also bare metal C code for Freescale ARM Cortex M4. This involved a state machine and multiple hardware modules communicating over a CAN bus. It was developed under an IAR development environment.
Control of a custom hardware device by a Java application over a USB cable. The application displays various dialog boxes that allow the user to control the device and to report status back from it.
Embedded Linux system building/configuration and programming of device drivers. Java applications with user interface using SQL.
Embedded Linux test software, various Linux Device Drivers and board bring-up. The test application involved device register level testing of internal and external devices of a Broadcom ARM SOC. It was written in C++ and developed under Eclipse.
A Linux application that displays an animated 3D model. This used OpenSceneGraph, C++ and Qt. It was developed under Eclipse.
A device that plugs into the On Board Diagnostic (OBD) port of a car utilizing a TI ARM 1806-1808. This involved writing a User Boot Loader (UBL) for flash memory for field upgrades, board bringup, device drivers, utilizing a Board Support Library (BSL), TI SYS/BIOS O/S and writing test routines. Code Composer Studio (CCS), Logic PD experimenter board and Blackhawk USB Emulator were used for development.
Upgrade of project from 2010. Application was developed under Linux/Eclipse/C++ and was changed to use Qt as framework and SQLite as database. New features available in OpenSceneGraph V 3 were added as well as new features in general.
Analyzed and documented C/C++ 3D graphics legacy code that generated CIGI messages to drive Link’s proprietary 3D image generators for a military flight simulator. This was in preparation for a future rewrite of this code. This code ran under Linux although during the preparation I wrote a Qt C++ app that ran under Windows.
Developed a C++ (for Linux version) and C# (for Windows) 3D graphics application for training purposes. This application provides the user with a virtual reality environment user interface and provides feedback on their actions. Did all aspects of this project and used C++ and C# for the language, PostgreSQL as the database, OpenSceneGraph (Open Scene Graph, OSG) as a 3D API, Blender as the 3D modeling application. Some experience with Direct3D (Directx 3D), Ogre 3D, and Irrlich 3D engines.
Wrote embedded software for the monitor and control of satellite earth stations. The Windows client sides were in VC++ and C#. The server sides were VC++ (Windows) and C++ (Linux). Communication on the C# project used SNMP, TCP/IP, FTP, and .NET Remoting. The development systems were Microsoft Visual Studio and Eclipse. My work involved everything from Windows GUI’s to Linux device drivers.
Embedded microprocessor RFID (Radio Frequency ID) project involving wireless communication and remote sensoring systems. Microprocessors would communicate with each other using a Chipcon Zigbee wireless communications chip. Wrote C++ device drivers and other microprocessor code. Also developed a test PC application controlling these microprocessors over a TCP Internet connection. The development system was a NetBurner Motorola Coldfire 5272 with uC/OS RTOS.
Client-server application in VC++. Used Internet socket communications to communicate from client to server. Designed the database on the client and server. Data access was by ADO with a SQL Server database. A few ASP (Active Server Page) web apps were written in C#.
TEXAS INSTRUMENTS: (4 years software engineer employee) Created and maintained microcode and test applications for a 3D graphics processor utilizing bit-slice processors in a pipeline architecture in a team environment. Wrote assembly language for another 3D graphics processor based on microprocessors. These processors would traverse a 3D scene that was prepared by a user application, do transformations, rasterizations and do picking of elements in the 3D scene.
SHOWCO / VARI-LITE: (10 years software contractor) Designed and wrote software implementing HDLC over a 1 Megabit/Second communications link. Designed and wrote disk controller S/W, file system, and SCSI interface to a disk and tape drive. Interface routines for UART, timers, clock, DMA, floppy controllers, hard drive controller, communications controllers. Hardware diagnostic systems. TTY based Unix-like Shell interface with interface routines, and command processors. Configuration and programming for VRTX real-time multitasking operating system. Wrote device drivers and tasks using interprocessor communication. System maintenance of Unix O/S. Routines for operator to test hardware.
DOCUTEL: (1 year contract programmer) Embedded C device drivers and test routines for ATM machines in a UNIX environment.
DATOTEK: (2 year contract developer) Led effort to develop Z80 assembly language in a UNIX development environment which interfaced with custom hardware for encrypting data over phone lines. This involved using the DES encryption standard and interfacing with the NSA (National Security Agency) over the export of this equipment.
JOB TITLES: Systems engineer, systems programmer, application developer, architect, firmware engineer, embedded programmer, firmware programmer and embedded engineer.
B.S. Computer Science U.T. Dallas Honors: Graduated Cum Laude.
Graduate work towards M.S. in Computer Science at S.M.U.
Work toward a B.S. Mechanical Engineering U.T. Arlington